LlamaIndex
LlamaIndex는 문서 색인·검색 특화 RAG 프레임워크입니다.
대규모 문서 기반 AI 서비스 구축에 최적화되어 있습니다.
정보
iwinv API는 OpenAI 호환 커스텀 엔드포인트이므로 llama_index.llms.openai.OpenAI 대신
OpenAILike 를 사용해야 합니다.
설치
pip install llama-index llama-index-llms-openai-like llama-index-embeddings-openai
기본 설정
from llama_index.llms.openai_like import OpenAILike
import os
llm = OpenAILike(
model="gemma4-26b",
api_base="https://ai-api.iwinv.kr/v1",
api_key=os.environ["IWINV_API_KEY"],
is_chat_model=True,
is_function_calling_model=True,
context_window=262000
)
기본 호출
response = llm.complete("iwinv 클라우드에 대해 알려주세요.")
print(response.text)
문서 기반 Q&A
from llama_index.core import VectorStoreIndex, Document, Settings
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.openai import OpenAIEmbedding
# LLM 설정
Settings.llm = OpenAILike(
model="gemma4-26b",
api_base="https://ai-api.iwinv.kr/v1",
api_key=os.environ["IWINV_API_KEY"],
is_chat_model=True,
is_function_calling_model=True,
context_window=262000
)
# 임베딩 모델 설정
Settings.embed_model = OpenAIEmbedding(
model="text-embedding-3-large",
api_key=os.environ["IWINV_API_KEY"],
api_base="https://ai-api.iwinv.kr/v1"
)
# 문서 로드
documents = [
Document(text="iwinv는 국내 클라우드 서비스 기업입니다."),
Document(text="iwinv AI API는 단일 Key로 다양한 LLM을 사용할 수 있습니다."),
Document(text="iwinv GPU 서버는 RTX 4090, RTX 5090 등을 지원합니다.")
]
# 인덱스 생성
index = VectorStoreIndex.from_documents(documents)
# 질의
query_engine = index.as_query_engine()
response = query_engine.query("iwinv AI API가 무엇인가요?")
print(response)
모델별 context_window 설정
OpenAILike는 컨텍스트 크기를 자동으로 감지하지 못하므로 모델에 맞게 직접 지정해야 합니다.
| 모델 ID | context_window |
|---|---|
gemma4-26b | 262000 |
gemma4-31b | 262000 |
qwen3.6-27b | 262000 |
gemini-2.5-pro | 1048576 |
gemini-2.5-flash | 1048576 |
gpt-5 | 272000 |
gpt-4.1 | 1000000 |
opus-4.7 | 1000000 |
sonnet-4.6 | 1000000 |
haiku-4.5 | 200000 |
채팅 엔진
대화 문맥을 유지하는 채팅 엔진입니다.
chat_engine = index.as_chat_engine()
response = chat_engine.chat("iwinv AI API를 사용하려면 어떻게 해야 하나요?")
print(response)
response = chat_engine.chat("비용은 어떻게 청구되나요?")
print(response)
스트리밍
response = llm.stream_complete("iwinv 클라우드의 장점을 설명해주세요.")
for chunk in response:
print(chunk.delta, end="", flush=True)